/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

/**
 *
 * @author root
 */
@Entity
@Table(name = "HistorialUnidades_Alojamiento")
@NamedQueries({
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findAll", query = "SELECT h FROM HistorialUnidadesAlojamiento h"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findOcupado", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.tipoAlquiler = 'O'"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findById", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.id = :id"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByIdUnidad", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.idUnidad = :idUnidad"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByNombreUnidadAlojamiento", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.nombreUnidadAlojamiento = :nombreUnidadAlojamiento"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByIdCliente", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.idCliente = :idCliente"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByApellido", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.apellido = :apellido"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByNombres", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.nombres = :nombres"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByTipoAlquiler", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.tipoAlquiler = :tipoAlquiler"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByFechaArribo", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.fechaArribo = :fechaArribo"),
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByTodo", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE ((:apellido = '') OR (UPPER(h.apellido) LIKE CONCAT('%',UPPER (:apellido),'%'))) "
         + "AND h.nombreUnidadAlojamiento = :nombreUnidadAlojamiento " + "AND ((h.fechaArribo <= :fechaFin) AND (h.fechaPartida >= :fechaInicio))" + "AND (h.tipoAlquiler = :tipoAlquiler)"),
    
       
    @NamedQuery(name = "HistorialUnidadesAlojamiento.findByFechaPartida", query = "SELECT h FROM HistorialUnidadesAlojamiento h WHERE h.fechaPartida = :fechaPartida")})
public class HistorialUnidadesAlojamiento implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "Id")
    private int id;
    @Basic(optional = false)
    @Column(name = "idUnidad")
    private int idUnidad;
    @Basic(optional = false)
    @Column(name = "NombreUnidadAlojamiento")
    private String nombreUnidadAlojamiento;
    @Basic(optional = false)
    @Column(name = "idCliente")
    private int idCliente;
    @Basic(optional = false)
    @Column(name = "apellido")
    private String apellido;
    @Column(name = "nombres")
    private String nombres;
    @Basic(optional = false)
    @Column(name = "tipoAlquiler")
    private String tipoAlquiler;
    @Basic(optional = false)
    @Column(name = "fechaArribo")
    @Temporal(TemporalType.DATE)
    private Date fechaArribo;
    @Basic(optional = false)
    @Column(name = "fechaPartida")
    @Temporal(TemporalType.DATE)
    private Date fechaPartida;

    public HistorialUnidadesAlojamiento() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getIdUnidad() {
        return idUnidad;
    }

    public void setIdUnidad(int idUnidad) {
        this.idUnidad = idUnidad;
    }

    public String getNombreUnidadAlojamiento() {
        return nombreUnidadAlojamiento;
    }

    public void setNombreUnidadAlojamiento(String nombreUnidadAlojamiento) {
        this.nombreUnidadAlojamiento = nombreUnidadAlojamiento;
    }

    public int getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(int idCliente) {
        this.idCliente = idCliente;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getNombres() {
        return nombres;
    }

    public void setNombres(String nombres) {
        this.nombres = nombres;
    }

    public String getTipoAlquiler() {
        return tipoAlquiler;
    }

    public void setTipoAlquiler(String tipoAlquiler) {
        this.tipoAlquiler = tipoAlquiler;
    }

    public Date getFechaArribo() {
        return fechaArribo;
    }

    public void setFechaArribo(Date fechaArribo) {
        this.fechaArribo = fechaArribo;
    }

    public Date getFechaPartida() {
        return fechaPartida;
    }

    public void setFechaPartida(Date fechaPartida) {
        this.fechaPartida = fechaPartida;
    }
    
}
